$(function() {
	/* 下拉选择科目加载后台信息 */
    $("#sele_subject").selectpicker({  
        noneSelectedText : '请选择科目'  
        });
    // 下拉数据加载
    $.ajax({
        type : 'get',  
        url :"subject/findAll",  
        dataType : 'json',  
        success : function(datas) {// 返回list数据并循环获取
            var select = $("#sele_subject");  
            for (var i = 0; i < datas.length; i++) {  
                select.append("<option value='"+datas[i].id+"'>"  
                        + datas[i].name + "</option>");  
            }
            $('#sele_subject').selectpicker('refresh');
            $('#sele_subject').selectpicker('val', '');
        }  
    });
    /* 科目查找筛选信息 */
    $("#search_subject").selectpicker({  
        noneSelectedText : '选择科目查找'  
        });
    // 下拉数据加载
    $.ajax({
        type : 'get',  
        url :"subject/findAll",  
        dataType : 'json',  
        success : function(datas) {// 返回list数据并循环获取
            var select = $("#search_subject");  
            for (var i = 0; i < datas.length; i++) {  
                select.append("<option value='"+datas[i].id+"'>"  
                        + datas[i].name + "</option>");  
            }
            $('#search_subject').selectpicker('refresh');
            $('#search_subject').selectpicker('val', '');
        }  
    });
    
});
// 加载表格
$('#courseList').bootstrapTable({
	url:'course/findPage', // 服务器数据的加载地址
	method: 'get',  
    dataType: "json",  
    striped: true,// 设置为 true 会有隔行变色效果
    undefinedText: "空",// 当数据为 undefined 时显示的字符
    pagination: true, // 分页
    toolbar: '#toolbar',
   // paginationLoop:true,//设置为 true 启用分页条无限循环的功能。
    // showToggle: "true",//是否显示 切换试图（table/card）按钮
    // showColumns: "true",//是否显示 内容列下拉框
    showRefresh: true,// 是否显示刷新按钮
    pageNumber: 1,// 如果设置了分页，首页页码
    // showPaginationSwitch:true,//是否显示 数据条数选择框
    pageSize: 12,// 如果设置了分页，页面数据条数
    // pageList: [5, 10, 20, 40], //如果设置了分页，设置可供选择的页面数据条数。设置为All 则显示所有记录。
    paginationPreText: '‹',// 指定分页条中上一页按钮的图标或文字,这里是<
    paginationNextText: '›',// 指定分页条中下一页按钮的图标或文字,这里是>
    //singleSelect: false,//设置True 将禁止多选
    // search: true, //显示搜索框
    data_local: "zh-US",// 表格汉化
    sidePagination: "server", // 服务端处理分页
    queryParams: function (params) {// 自定义参数，这里的参数是传给后台的，我这是是分页用的
    	var str = $('input[name="search"]').val();
    	var subject_id = $('#search_subject option:selected').val();
        return{
        	subject_id:subject_id,
        	str:str,
			page:(params.offset)/(params.limit)+1,// 页码
            limit: params.limit, // 找多少条
            sort:params.sort,// 排序列名
            dir:params.order// 排序方式desc,asc
        };
    },
    idField: "id",// 指定主键列
    columns: [{
        field: 'id',  
        title: 'ID',
        /* visible:false */
    }, {  
        field: 'num',  
        title: '编号'
    }, {  
        field: 'name',
        title: '名称'
    }, {
    	field: 'subject',
        title: '科目',
        formatter : function(value,row,index){
        	if(null!=row.subject)
        		return row.subject.name;
        	return null;
        }
    }, {
    	field: 'teacher',
        title: '任课教师',
        formatter : function(value,row,index){
        	if(null!=row.teacher)
        		return row.teacher.name;
        	return null;
        }
    },{
        title: '操作',
        formatter : function(value,row,index){
        	var r = '<a class="edit btn btn-info btn-xs fa fa-pencil" title="edit"></a>&nbsp;'+
        			'<a class="remove btn btn-danger btn-xs fa fa-trash-o" title="remove"></a>';
        	return r;
        },
		events:{
			'click .edit':function(e, value, row, index){
				$('#form1 :input[name="num"]').val(row.num);
				$('#form1 :input[name="id"]').val(row.id);
				$('#form1 :input[name="name"]').val(row.name);
				
				$('#sele_subject').selectpicker('val', row.subject.id);

				$("#sele_teacher").html('');
			    $("#sele_teacher").selectpicker({  
			        noneSelectedText : '请选择任课教师'  
			        });
			    // 下拉数据加载
			    var subjId = $('#sele_subject option:selected').val();
			    $.ajax({
			    	//data:subjId
			        type : 'get',  
			        url :"teacher/findListBySubj",  
			        dataType : 'json',
			        data:{subjId:subjId},
			        success : function(datas) {// 返回list数据并循环获取
			            var select = $("#sele_teacher");  
			            for (var i = 0; i < datas.length; i++) {  
			                select.append("<option value='"+datas[i][0].id+"'>教工号:"+datas[i][0].num+" | 姓名:"+ datas[i][0].name + "</option>");  
			            }
			            $('#sele_teacher').selectpicker('refresh');
			            $('#sele_teacher').selectpicker('val', row.teacher.id);
			        }  
			    });

				$('#myModal').modal('show');
			},
			'click .remove':function(e, value, row, index){
				Modal.confirm(
					    {
					        msg: "确定要删除课程？"
					    })
					    .on( function (e) {
					        if(e){
					        	$.ajax({
					        		type:'POST',
					        		url:'course/delete',
					        		data:{id:row.id},
					        		dataType:'json',
					        		success:function(data){
					        			Modal.alert({msg:data.msg});
					        			if(data.success){
					        				$('#courseList').bootstrapTable('remove',{
					        		    		field:'id',
					        		    		values:[parseInt(row.id)]
					        		    	});
					        			}
					        			
					        		},
					        		error:function(){
					        			Modal.alert({msg:'出错！'});
					        		}
					        	});
					        }
					    });
			}
		}
    }]
      
});
/* 信息提交 */
$("#form1").submit(function(event){
	var id = $('input[name="id"]').val();
	var num = $('input[name="num"]').val();
	var name = $('input[name="name"]').val();

	var subjectId = $('#sele_subject option:selected').val();
	var teacherId = $('#sele_teacher option:selected').val();
    
    var data = {
    		'id':id,
    		'num':num,
    		'name':name,
    		'subject':{'id':subjectId},
    		'teacher':{'id':teacherId}
    		};
    console.log(JSON.stringify(data));
    var result = JSON.stringify(data);
    $.ajax({
    	url:'course/saveOrUpdate',
    	type:'post',
    	dataType:'json',
    	data:{course:result},
    	success:function(data){
    		Modal.alert({msg:data.msg});
    		if(data.success){
    			$('#sele_subject').selectpicker('val', '');
    			seleSubject();
    			
    			$('#search_subject').selectpicker('val', '');
    			$('input[name="search"]').val('');
    			
    			$('#courseList').bootstrapTable('refresh');
    			$('#myModal').modal('hide');
    		}
    	},
    	error:function(){
    		Modal.alert({msg:'出错!'});
    	}
    });
	return false;
});

/*选择科目级联加载教师列表*/
function seleSubject(){
	$("#sele_teacher").html('');
    $("#sele_teacher").selectpicker({  
        noneSelectedText : '请选择任课教师'  
        });
    // 下拉数据加载
    var subjId = $('#sele_subject option:selected').val();
    $.ajax({
    	//data:subjId
        type : 'get',  
        url :"teacher/findListBySubj",  
        dataType : 'json',
        data:{subjId:subjId},
        success : function(datas) {// 返回list数据并循环获取
            var select = $("#sele_teacher");  
            for (var i = 0; i < datas.length; i++) {  
                select.append("<option value='"+datas[i][0].id+"'>教工号:"+datas[i][0].num+" | 姓名:"+ datas[i][0].name + "</option>");  
            }
            $('#sele_teacher').selectpicker('refresh');
            $('#sele_teacher').selectpicker('val', '');
        }  
    });
}
/*---------*/
function resetSearch(){
	$('#search_subject').selectpicker('val', '');
	$('input[name="search"]').val('');
	$('#courseList').bootstrapTable('refresh');
}
function search(){
	$('#courseList').bootstrapTable('refresh');
}

$('#myModal').on('show.bs.modal', function () {
	// 打开modal执行一些动作...
});
$('#myModal').on('hide.bs.modal', function () {
	// 关闭modal执行一些动作...初始化modal
	$('#form1')[0].reset();
	$('#sele_subject').selectpicker('val', '');
	seleSubject();
	console.log($("#sele_teacher").html())
});